package cn.zahuo.SJR.jdbc;
import java.lang.reflect.Method;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
@SuppressWarnings("ALL")
@JDBC(className ="cn.zahuo.SJR.jdbc.Info",methodName="UUP")
public class JDBC_Select_Ano {
//    使用私有方法，并且只允许静态方法调用，声明一次之后不准改变，数据类型
//    private  static  final  String ul="jdbc:mysql://127.0.0.1:3306/moretables?&useSSL=false&serverTimezone=UTC";
//    private  static  final  String user="root";
//    private  static  final  String password="root";
    public static void main(String[] args)  throws Exception{
//        将目前的这个类加载入进内存，生成字节码文件
        Class<JDBC_Select_Ano> JDBC_Ano=JDBC_Select_Ano.class;
//        获取指定的注解类的字节码文件
        JDBC DBC=JDBC_Ano.getAnnotation(JDBC.class);
//        调用注解中的属性
        String className=DBC.className();
        String methodName=DBC.methodName();
//将该类加载入内存
        Class cls=Class.forName(className);
//        创建基于object父类的对象
        Object obj=cls.newInstance();
//从字节码文件中获取方法对象
        Method method=cls.getMethod(methodName);
//        强制转换将object父类转换成string[]类型
       String[] str1= (String[]) method.invoke(obj);




//        1.导入jar包
//        2.注册驱动
        Class.forName("com.mysql.cj.jdbc.Driver");
//        3.获取数据库连接对象
        Connection connection=DriverManager.getConnection(str1[0],str1[1],str1[2]);
//        5.获取sql的对象 Statement
//        操作数据库，实现增删改查
        Statement Stmt=connection.createStatement();
        ResultSet rs = Stmt.executeQuery("select  * from emp");
//        如果有数据，rs.next()返回true
        while (rs.next()) {
            System.out.println(rs.getString("name")+"        "+rs.getInt("salary"));
        }
        connection.close();
        Stmt.close();
        rs.close();
    }
}
